home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Light ROM 1
/
LIGHT-ROM 1 (Amiga Library Services)(1994).iso
/
ffdisks
/
d880.lha
/
SnapWindow
/
SnapWindow.Doc
< prev
next >
Wrap
Text File
|
1993-05-11
|
11KB
|
278 lines
SnapWindow Version 1.0
Written By, Jason Scott Chvat. Copyright 1993 SilverSoft.
This program is SHAREWARE. NOT PD!! You may distrubite it to anyone you
wish granted, that no profit is made from this transaction. Please note,
this is only version 1.0. THERE ARE BUGS! All programs have them, I have
gone absolutely bonkers trying to crash the program in every way possible
to get the bugs out of it. If you locate any problems or have suggestions
for the next version 1.1 please contact me (Handle: SilverSurfer) through
the BLACK RAINBOW at (714)-586-6836.
WARNING: Author is not responsible for any problems/loss of data resulting
from the use of this program.
============================================================================
WHAT IS SNAPWINDOW?
Simply stated, SnapWindow is a small utility that I created to help me
handle my workbench windows. Although, it isn't limited to just the workbench
What's wrong with the workbench you ask? Well, for those of you who program
or run a bunch of different tasks simutaneously, the workbench can be an
utter disaster area. I normally have am running an editor, two separate
shells (in case one decides to freeze up on me), a debugger, and a
communications program. This leads to a lot of confusion as to which window
to throw out so I can find what I am looking for. So I figured hey why not
attach these suckers to function keys. That way I can hit f1 and bring up
my editor and type, hit f2 and bring up my cli to compile, and later f3 to
find out if I am done leeching from various BBS's.
So does that answer the question?
============================================================================
KNOWN PROBLEMS/HOW IT WAS WRITTEN:
1. This program WILL crash your system as would any other that uses the
SetFunction() command. In other words, I patch the intuition library in
quite a few places. So if one program tried to open/close a window while
SnapWin is changing (exiting most likely) the library vectors, YOU WILL
HAVE A PROBLEM. How do you get around it? Not easily! I haven't had any
problems with it, actually I can't even get it to call the functions at the
same time so I wouldn't really worry. In addition, the patch counts how
many tasks are currently using it, and won't exit until everyone is
finished doing there thing.
- Best precaution I can give -
DON'T OPEN A WINDOW WHILE SNAPWIN IS PATCHING INTUITION!
2. SnapWin was written almost entirely in Aztec C Ver 5.1, except for a few
minor assembly subroutines. Hopefully, the entire input-handler will be
rewritten in assembly *as soon as I get 20 minutes to myself*. Source code
is not available for ver1.0 at this time for 1 basic reason- It's a mess! I
have subroutines in about 10 different files, with backup versions all over
my hard drive. When I sort out the files, clean up the source code, and
release the next version I will put out some kind of sample source. (not
that it is astonishing or anything, I am just too embarrassed to exhibit
source code that looks like it got hit by the Dpaint SMEAR function!)
============================================================================
SPECIAL THANKS:
I would like to thank my bud, Geoff Wiley at the Computer Guild in
Mission Viejo California for being cool, and helping me set up an awesome
Amiga 500. In addition, to his suggestions for User Interface, and
additional doo-dads.
Also, My girlfriend for putting up with me getting peeved because the
assembly patches I was writting kept crashing (register trashing is fun).
Keep making amiga great! Don't give in to temptation, and practice safe
programming. Viruses these days can be mighty nasty.
COMPUTER GUILD
24001 Via Fabricante St. 1003/4
Mission Viejo, Ca 92691
(714)-951-1355
============================================================================
HOW TO LOAD SNAPWIN:
SnapWin is linked with detach.o (copyright Aztec C) a program that make
SnapWin create its own process. In other words you don't have to RUN the
darn thing. (I would have loved to done this portion of the programming
myself, but for some reason playing around with seglists doesn't really
compare to the EXCITEMENT of mass input programming.)
So simply stated type this: SnapWin. (wo, that's hard!)
[NOTE RUNNING FROM THE WORKBENCH IS JUST AS DIFFICULT]
For the workbench: Click on the SnapWin icon.
============================================================================
WHAT THE GADGETS ARE FOR:
SnapWindow Ver1.0 has 10 different gadgets attached to its help window.
These gadgets each have a different function. In addition one or more of
these gadgets may not be enabled in this particular version.
(That's what revisions and updates are for)
MOUSESPEED- This gadget simply toggles the mouse accelerator on and off.
If it is checked the accelerator is on.
WINDOWFKEYS- This gadget toggles the function keys on and off. In other
words if you are using a terminal, or painting utility and it has function
key that you wish to use, you can simple turn off SnapWindows function
keys. This way, you don't have to have a window pop up when you are trying
to use a macro.
WINDOWAUTOSELECT- To be used to select whether SnapWindow should patch
Intuition or not. Basically, I think this is the most useful/beneficial
part of the SnapWindow utility. WindowAutoSelect (as I like to call it)
will automatically assign a [EMPTY] function key to any window that is
opened.
SUNMOUSE- At regular intervals the program will activate any window
underneath the mouse pointer that is not already active. If this option is
on (of course).
BLANKER- A simple screen blanker. Go away and watch the screen turn black.
Neat Huh?
HIDE- Will close the SnapWindow HELP requester. To bring the requester
back up simply hit the [HELP] key. Ingenious eh?
NOTES:
- The scroll box at this point in time serves only one real purpose: To
list what windows are assigned to what function keys. It will have a more
intricate role in later versions. However, for now it serves its purpose.
- The last two gadgets REMOVE and RAMIGA/RAMIGA+ALT are at this time
also considered to be inactive.
** DON'T ASK ME WHY they are there if they do not function, They just do
** not function yet that's all!
============================================================================
WHAT ARE THE MENUS FOR:
PROJECT MENU
============
ABOUT- Gives you a little information, and besides I think it's pretty.
NEW- Resets all the function keys so that they are "EMPTY".
LOAD & SAVE- Save and Load specific configuration files. The program will
automatically examine "DEVS:Snap.CFG" at start up. Some additional
benefits will be associated with these functions at a later date...
(Don't you wish you knew!?!? It's good though)
QUIT- If you don't know, I am not going to tell you!
===========================================================================
HOW TO USE SNAPWINDOWS:
1. To assign a window press the left-amiga key and the function key you
wish to assign the CURRENT/ACTIVE window to. The window's title should
then appear in the listbox on the help window. To release a particular
key, use the remove gadget.
2. The function keys, and other utilities will remain active while the
HELP window is not open.
3. One additional feature of SnapWindows is the ability to type directly
into any window without it being active. Just position the mouse above the
window you wish to type into and go for it.
4. If a window is located on a separate screen the function keys will
bring the screen and window into view. Kind of like right amiga m except
that specific function keys will contain specific screens.
5. The HELP key will bring SnapWindow's requester up on the CURRENTLY
ACTIVE screen. So if you are using dpaint... and hit help snapwindow will
pop up. (Unless, you restrict it to the workbench only)
===========================================================================
WHAT IS THE PREFERENCES GADGET FOR?
The preferences window let's you set some additional flags and
restricitions on SnapWindow.
SUNMOUSE DELAY- Sets how many seconds to wait before activating the window
located directly underneath the pointer.
BLANKER DELAY- Sets how many seconds to wait before blanking out the
screen.
KEYBOARD WINDOW ACTIVATION- If this is selected then SnapWin will
automatically select the window under the mouse pointer when a key is hit.
CAPTURE 2.0+ WINDOWS ONLY- Will only add/assign a window to a function key
if the window uses the OpenWindowTag() function. In other words SnapWin
will only auto select window created to run under 2.0. If the gadget is not
selected then SnapWin will select any windows opened.
ACTIVE ON WBENCH ONLY- SnapWin's Function keys, and Sunmouse functions will
only be active on the workbench.
REMAIN QUIT- SnapWin will not bring up it's "OK"/"CANCEL" requester.
============================================================================
Technical Info:
1. SnapWindows sets up a port called "SnapPort" that is used for relaying
messages from its input handler and intuition patches. It isn't wise to
screw around with this port. But if you must know the message structure
being used is the following:
struct HandlerMessage
{
struct Message h_msg;
struct InputEvent ev;
struct Window *win;
USHORT flag;
};
2. On certain screens if the SnapWindow screen is brought up it will
destroy the contents of the screen. I assume this is the result of other
progams not using a SMART_REFRESH window. In either case, be cautious. I
have also noticed under certain conditions if you try to close a screen
while SnapWindow is open on it, this will become rather hairy. So, do
yourself a favor and HIDE SnapWindow before closing a screen.
Any other technical question can be directed to me at the BLACK RAINBOW.
===========================================================================
I hope these documents help out.
NOTE:
If you enjoy the use of this product and wish to receive more
information, updated versions or to become registered please send a
contribution of $10. Let's all remember I am a student and have
more important things to be worrying about than programming.
However, I must admit it is a most enjoyable hobbie.
SPECIAL NOTICE
I have for some unkown reason decided to release this EARLY. All notices
are still effective. However, please NOTE: Some of the additional functions
that I have installed or are being installed are not available yet. This
is a ALPHA testing version. Please give any feedback... and all
contributers will receive a spiral notebook with source code, updated
instructions, and a disk with the newest version. (The source code will
be supplied with a $15-20 contribution)
Jason Scott Chvat
28 Brookstone
Irvine, Ca 92714
I can also be found frequenting the UCI Library. :)
===========================================================================
Le finale.